NVIDIA FrameView SDK

您所在的位置:网站首页 nvidia frameview sdk service NVIDIA FrameView SDK

NVIDIA FrameView SDK

2024-04-17 21:40| 来源: 网络整理| 查看: 265

NVIDIA FrameView SDK - всё, что нужно знать

NVIDIA FrameView SDK (Software Development Kit) - это инструмент, предназначенный для тестирования и анализа производительности графических карт NVIDIA на базе API DirectX 11 и DirectX 12. Он помогает разработчикам оптимизировать свои приложения для работы на GPU, обнаруживать узкие места и повышать производительность графики.

Набор инструментов NVIDIA FrameView включает в себя библиотеки и API для измерения времени рендеринга кадров, использования памяти видеокарты и переключения контекстов рендеринга. Он также предоставляет различные настройки для контроля анализируемой графической информации и задержки обновления монитора.

Пример кода для использования библиотеки NVIDIA FrameView SDK:

c++ #include #include #include #include #include using namespace std; int main() { NvAPI_Status status; status = NvAPI_Initialize(); if(status != NVAPI_OK) return -1; NvPhysicalGpuHandle gpuHandles[NVAPI_MAX_PHYSICAL_GPUS]; NvU32 gpuCount = 0; status = NvAPI_EnumPhysicalGPUs(gpuHandles, &gpuCount); if(status != NVAPI_OK) return -1; NvDisplayHandle hDisplay; NvU32 pathCount = 0; NvU32 displayCount = 0; NvAPI_DISP_GetDisplayCount(gpuHandles[0], &displayCount); if(displayCount == 0) return -1; status = NvAPI_DISP_GetPathCount(gpuHandles[0], &pathCount); if(status != NVAPI_OK) return -1; status = NvAPI_DISP_GetAssociatedUnAttachedNvidiaDisplayHandle(gpuHandles[0], &hDisplay); if(status != NVAPI_OK) return -1; NvU32 outputId = 0; status = NvAPI_GetAssociatedNvidiaDisplayHandle(hDisplay, &hDisplay); if(status != NVAPI_OK) return -1; NvD3DDeviceHandle hDevice; D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_11_0; ID3D11Device *pDevice = nullptr; ID3D11DeviceContext *pContext = nullptr; D3D11CreateDevice(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, D3D11_CREATE_DEVICE_DEBUG, &featureLevel, 1, D3D11_SDK_VERSION, &pDevice, nullptr, &pContext); hDevice = NvAPI_D3D_GetObjectHandleForResource(pDevice); NvU32 numFrames = 300; NvU32 numSlices = 0; NvAPI_D3D11_CreateEvent(hDevice, &numSlices, &hEvent); NvS32 fd = 0; NvU64 timeStamp = 0; NvAPI_FrameCaptureControl(hEvent, NV_FRAME_CAPTURE_CONTROL_START); for(int i = 0; i ClearRenderTargetView(renderTargetView, clearColor); // Передача данных в видеопамять pContext->CopyResource(destTexture, srcTexture); NvAPI_D3D11_SetDepthBoundsTestIface(&depthBoundsIface); NvAPI_D3D11_PushDepthBoundsTestState(hDevice, NVAPI_DEPTH_BOUNDS_TEST_BEGIN); NvAPI_D3D11_PopDepthBoundsTestState(hDevice, NVAPI_DEPTH_BOUNDS_TEST_END); pContext->CopySubresourceRegion(tex, 0, 0, 0, 0, destTexture, 0, nullptr); NvAPI_FrameCaptureControl(hEvent, NV_FRAME_CAPTURE_CONTROL_SNAPSHOT); NvAPI_D3D11_GetVBlankCounter(hDevice, &fd, &timeStamp); } NvAPI_FrameCaptureControl(hEvent, NV_FRAME_CAPTURE_CONTROL_STOP); NvAPI_D3D11_DestroyEvent(hEvent); pContext->Release(); pDevice->Release(); return 0; }

В этом примере используется функционал для измерения времени рендеринга кадров и переключения контекстов рендеринга с помощью библиотеки NVIDIA FrameView SDK в связке с DirectX 11 и DirectX 12. Это позволяет оптимизировать производительность графических приложений для видеокарт NVIDIA, используя инструментарий NVIDIA FrameView SDK.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3